package com.example.demo.domain.repository;

import com.example.demo.domain.Announcement;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @program: demo
 * @description: 关于公告的数据库操作
 * @author: wangze
 * @create: 2020-04-26 17:47
 **/

public interface AnnouncementRepository extends JpaRepository<Announcement,Integer> {
    /**
     * @Description: 获取全部公告
     * @Param:  无
     * @return:  全部公告列表
     * @Author: wangze
     */
    List<Announcement> getAllByIdIsNotNullOrderByDateDesc();

    /**
     * @Description: 根据公告介绍查找全部公告
     * @Param: searchContent: 关键字
     * @return: 特定搜索列表
     * @Author: wangze
     */
    List<Announcement> findByIntroductionContainingOrderByDateDesc(String searchContent);

    /**
     * @Description: 根据公告ID删除公告
     * @Param:  id: 公告ID
     * @return:  公告实体
     * @Author: wangze
     */
    @Transactional
    @Modifying
    void deleteAnnouncementById(Integer id);

    /**
    * @Description: 根据公告ID查找公告
    * @Param:  id: 公告ID
    * @return:  公告实体
    * @Author: wangze
    */
    Announcement findAnnouncementById(Integer id);
}
